Skip to content

Merge component wiring and regression hardening fixes into main#813

Closed
BigSimmo wants to merge 11 commits into
mainfrom
codex/main-merge-safe-final-20260718-final
Closed

Merge component wiring and regression hardening fixes into main#813
BigSimmo wants to merge 11 commits into
mainfrom
codex/main-merge-safe-final-20260718-final

Conversation

@BigSimmo

@BigSimmo BigSimmo commented Jul 18, 2026

Copy link
Copy Markdown
Owner

Summary

  • Merge validated component wiring and regression-hardening updates into main from the latest reviewed branch set.
  • Affects clinical UI surfaces, RAG/query wiring, schema artifacts, and regression coverage.

Verification

  • Verification not run: Local heavyweight npm run verify:cheap gate is blocked by a concurrent active run-heavy.mjs process; rerun once completed.
  • UI verification not run: blocked by the same active local heavyweight process.

Risk and rollout

  • Risk: high; touches clinical workflow paths (src/lib/rag*, src/app, src/components) and Supabase schema/migration artifacts.
  • Rollback: revert this PR merge and re-run npm run verify:pr-local before any production promotion if regressions are detected.

Clinical Governance Preflight

  • Source-backed claims still require linked source verification before clinical use
  • No patient-identifiable document workflow was introduced or expanded without explicit governance approval
  • Supabase target remains Clinical KB Database (sjrfecxgysukkwxsowpy)
  • Service-role keys and private document access remain server-only
  • Demo/synthetic content remains clearly separated from real clinical sources
  • Source metadata, review status, and outdated/unknown-source behavior remain conservative
  • Deployment classification/TGA SaMD impact was checked when clinical decision-support behavior changed

Summary by CodeRabbit

  • New Features

    • Added expandable service-selection details and comparison controls with improved accessibility.
    • Improved mobile service-detail behavior and service navigation interactions.
    • Enhanced clinical search correction using document titles and aliases.
  • Bug Fixes

    • Empty or whitespace-only presentation searches now correctly fall back to alternate query parameters.
    • Improved registry cleanup and document indexing consistency.
  • Documentation

    • Updated route, API, database schema, and review-record documentation.

@supabase

supabase Bot commented Jul 18, 2026

Copy link
Copy Markdown

Updates to Preview Branch (codex/main-merge-safe-final-20260718-final) ↗︎

Deployments Status Updated
Database Sat, 18 Jul 2026 06:36:01 UTC
Services Sat, 18 Jul 2026 06:36:01 UTC
APIs Sat, 18 Jul 2026 06:36:01 UTC

Tasks are run on every commit but only new migration files are pushed.
Close and reopen this PR if you want to apply changes from existing seed or migration files.

Tasks Status Updated
Configurations Sat, 18 Jul 2026 06:36:03 UTC
Migrations Sat, 18 Jul 2026 06:36:06 UTC
Seeding ⏸️ Sat, 18 Jul 2026 06:35:53 UTC
Edge Functions ⏸️ Sat, 18 Jul 2026 06:35:53 UTC

❌ Branch Error • Sat, 18 Jul 2026 06:36:06 UTC

ERROR: Unsafe supabase_admin default privileges; migration blocked. (SQLSTATE 42501)
{"safe": false, "entries": ["function:PUBLIC:execute", "function:anon:execute", "function:authenticated:execute", "function:postgres:execute", "function:service_role:execute", "function:supabase_admin:execute", "sequence:anon:select", "sequence:anon:update", "sequence:anon:usage", "sequence:authenticated:select", "sequence:authenticated:update", "sequence:authenticated:usage", "sequence:postgres:select", "sequence:postgres:update", "sequence:postgres:usage", "sequence:service_role:select", "sequence:service_role:update", "sequence:service_role:usage", "sequence:supabase_admin:usage", "table:anon:delete", "table:anon:insert", "table:anon:maintain", "table:anon:references", "table:anon:select", "table:anon:trigger", "table:anon:truncate", "table:anon:update", "table:authenticated:delete", "table:authenticated:insert", "table:authenticated:maintain", "table:authenticated:references", "table:authenticated:select", "table:authenticated:trigger", "table:authenticated:truncate", "table:authenticated:update", "table:postgres:delete", "table:postgres:insert", "table:postgres:maintain", "table:postgres:references", "table:postgres:select", "table:postgres:trigger", "table:postgres:truncate", "table:postgres:update", "table:service_role:delete", "table:service_role:insert", "table:service_role:maintain", "table:service_role:references", "table:service_role:select", "table:service_role:trigger", "table:service_role:truncate", "table:service_role:update", "table:supabase_admin:delete", "table:supabase_admin:insert", "table:supabase_admin:maintain", "table:supabase_admin:references", "table:supabase_admin:select", "table:supabase_admin:trigger", "table:supabase_admin:truncate", "table:supabase_admin:update"], "role_exists": true, "schema_exists": true}
At statement: 3
do $$
declare
  v_status jsonb;
begin
  if not exists (select 1 from pg_catalog.pg_roles where rolname = 'supabase_admin') then
    raise notice 'role supabase_admin does not exist; default-privilege assertion is not applicable';
    return;
  end if;

  begin
    -- Local/Superuser-capable environments can assume the target role even
    -- when the migration role cannot use ALTER DEFAULT PRIVILEGES FOR ROLE
    -- directly. Hosted environments that cannot assume it fall through to the
    -- catalog assertion and block with operator instructions.
    execute 'set local role supabase_admin';
    -- Revokes must be global: per-schema ACLs cannot subtract privileges from
    -- built-in or previously granted global defaults.
    alter default privileges for role supabase_admin
      revoke all privileges on tables from public, anon, authenticated, service_role;
    alter default privileges for role supabase_admin in schema public
      revoke all privileges on tables from public, anon, authenticated, service_role;
    alter default privileges for role supabase_admin
      revoke all privileges on sequences from public, anon, authenticated, service_role;
    alter default privileges for role supabase_admin in schema public
      revoke all privileges on sequences from public, anon, authenticated, service_role;
    alter default privileges for role supabase_admin
      revoke execute on functions from public, anon, authenticated, service_role;
    alter default privileges for role supabase_admin in schema public
      revoke execute on functions from public, anon, authenticated, service_role;
    alter default privileges for role supabase_admin in schema public
      grant select, insert, update, delete on tables to service_role;
    alter default privileges for role supabase_admin in schema public
      grant usage, select on sequences to service_role;
    alter default privileges for role supabase_admin in schema public
      grant execute on functions to service_role;
    execute 'reset role';
  exception when insufficient_privilege then
    begin execute 'reset role'; exception when others then null; end;
    raise notice 'current role % cannot remediate supabase_admin default privileges; asserting the catalog postcondition', current_user;
  end;

  v_status := public.default_privileges_status('supabase_admin', 'public');
  if not coalesce((v_status->>'safe')::boolean, false) then
    raise exception using
      errcode = '42501',
      message = 'Unsafe supabase_admin default privileges; migration blocked.',
      detail = v_status::text,
      hint = E'Run these six statements as supabase_admin, then retry the migration:\n'
        'DO $remediate$ BEGIN ALTER DEFAULT PRIVILEGES FOR ROLE supabase_admin REVOKE ALL PRIVILEGES ON TABLES FROM PUBLIC, anon, authenticated, service_role; ALTER DEFAULT PRIVILEGES FOR ROLE supabase_admin IN SCHEMA public REVOKE ALL PRIVILEGES ON TABLES FROM PUBLIC, anon, authenticated, service_role; END $remediate$;\n'
        'DO $remediate$ BEGIN ALTER DEFAULT PRIVILEGES FOR ROLE supabase_admin REVOKE ALL PRIVILEGES ON SEQUENCES FROM PUBLIC, anon, authenticated, service_role; ALTER DEFAULT PRIVILEGES FOR ROLE supabase_admin IN SCHEMA public REVOKE ALL PRIVILEGES ON SEQUENCES FROM PUBLIC, anon, authenticated, service_role; END $remediate$;\n'
        'DO $remediate$ BEGIN ALTER DEFAULT PRIVILEGES FOR ROLE supabase_admin REVOKE EXECUTE ON FUNCTIONS FROM PUBLIC, anon, authenticated, service_role; ALTER DEFAULT PRIVILEGES FOR ROLE supabase_admin IN SCHEMA public REVOKE EXECUTE ON FUNCTIONS FROM PUBLIC, anon, authenticated, service_role; END $remediate$;\n'
        'ALTER DEFAULT PRIVILEGES FOR ROLE supabase_admin IN SCHEMA public GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO service_role;\n'
        'ALTER DEFAULT PRIVILEGES FOR ROLE supabase_admin IN SCHEMA public GRANT USAGE, SELECT ON SEQUENCES TO service_role;\n'
        'ALTER DEFAULT PRIVILEGES FOR ROLE supabase_admin IN SCHEMA public GRANT EXECUTE ON FUNCTIONS TO service_role;';
  end if;
end;
$$

View logs for this Workflow Run ↗︎.
Learn more about Supabase for Git ↗︎.

@coderabbitai

coderabbitai Bot commented Jul 18, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 39981b55-076d-472f-9266-6cc7950ca924

📥 Commits

Reviewing files that changed from the base of the PR and between ef01cf4 and 21dd0fd.

📒 Files selected for processing (5)
  • playwright.config.ts
  • src/app/differentials/presentations/route.ts
  • tests/audit-navigation-auth-regressions.test.ts
  • tests/ui-smoke.spec.ts
  • tests/ui-tools.spec.ts

📝 Walkthrough

Walkthrough

The pull request updates RAG retrieval and Supabase query-correction infrastructure, adds handler-aware sitemap generation, revises service and forms interfaces, expands regression coverage, and refreshes repository documentation and tooling behavior.

Changes

RAG retrieval and database scalability

Layer / File(s) Summary
RAG retrieval and cancellation flow
src/lib/rag*.ts
RPC calls and candidate loaders use direct awaits, higher-level abort handling is revised, and page visual evidence is attached across retrieval paths.
RAG schema and query correction
supabase/migrations/*, supabase/schema.sql, supabase/drift-manifest.json
Registry cleanup, document title-word indexing, bounded trigram correction, permissions, and related indexes are added or updated.
RAG and schema regression coverage
tests/rag-variant-early-exit.test.ts, tests/supabase-schema.test.ts
Tests validate retrieval early exits, migration lifecycle behavior, cleanup mapping, bounded probes, and index/RPC parity.

Sitemap route discovery

Layer / File(s) Summary
Handler discovery and sitemap data
scripts/generate-site-map.ts
Page and handler discovery is separated, public handlers are distinguished from API routes, and redirect extraction is narrowed.
Redirect route and generated sitemap output
src/app/differentials/presentations/route.ts, docs/site-map.md
Whitespace-aware query fallback and updated product, public-handler, and redirect sections are reflected in generated documentation.
Sitemap and redirect coverage
tests/site-map.test.ts, tests/audit-navigation-auth-regressions.test.ts
Tests cover sitemap placement and normalized presentations redirects.

Dashboard and mode interfaces

Layer / File(s) Summary
Service navigator selection and comparison UI
src/components/services/services-navigator-page.tsx
The right rail adds collapsible checklist, confidence, and comparison states with updated selection controls and accessibility attributes.
Forms home and page contracts
src/components/forms/forms-home-page.tsx, src/app/page.tsx
Forms task cards and session messaging change, and page search parameters use a generic record type.
UI and content regression coverage
tests/audit-content-services-regressions.test.ts, tests/ui-*.spec.ts, tests/audit-navigation-auth-regressions.test.ts
Regression tests update service mocks, forms expectations, dashboard gating, mobile layout checks, headings, and redirect error assertions.

Documentation and repository tooling

Layer / File(s) Summary
Repository documentation and review records
docs/codebase-index.md, docs/branch-review-ledger.md
Route/API, schema, and CI verification documentation is updated.
Workflow and project tooling
scripts/check-github-action-pins.mjs, tsconfig.json, src/app/layout.tsx
Workflow discovery handles missing directories, reports relative paths, worktrees are excluded from TypeScript input, and imports are reordered.
Playwright reduced-motion documentation
playwright.config.ts
The reduced-motion comment is revised without changing configuration values.

Estimated code review effort: 5 (Critical) | ~120 minutes

Possibly related PRs

Suggested labels: codex

Suggested reviewers: copilot

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 39.53% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Title check ✅ Passed The title clearly summarizes the main change: merging component wiring and regression hardening fixes into main.
Description check ✅ Passed The description follows the template and includes summary, verification, risk, rollout, and governance, though several verification items are left unfilled.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/main-merge-safe-final-20260718-final

Comment @coderabbitai help to get the list of available commands.

Unblock the design-audit merge stack by matching Playwright H1 expectations
to the rendered Clinical Guide heading, serving service registry details in
browser mocks, dropping reduced-motion-incompatible dock duration asserts,
and falling empty presentation `query` values through to legacy `q`.

Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>
@BigSimmo
BigSimmo enabled auto-merge July 18, 2026 06:35

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
src/lib/rag.ts (1)

2445-2468: 🩺 Stability & Availability | 🟠 Major | 🏗️ Heavy lift

Thread args.signal through the remaining RAG helpers.

  • src/lib/rag.ts#L2445-L2468: pass args.signal into fetchEnabledRagAliases; the helper already supports aborts, but this call site drops them.
  • src/lib/rag.ts#L2533-L2565 and src/lib/rag.ts#L2800-L2852: add abort plumbing to the fast-path enrichment helpers and the parallel candidate/RPC helpers so aborted requests don’t keep doing Supabase work or cache results.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/lib/rag.ts` around lines 2445 - 2468, Thread args.signal through the RAG
retrieval flow so aborted requests stop Supabase work and do not populate
caches. In src/lib/rag.ts:2445-2468, pass args.signal to fetchEnabledRagAliases;
in src/lib/rag.ts:2533-2565 and 2800-2852, propagate it through the fast-path
enrichment and parallel candidate/RPC helpers; and in
src/lib/rag-candidate-sources.ts:185-207, add the corresponding signal handling
to the candidate-source helpers.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@scripts/generate-site-map.ts`:
- Around line 397-407: Restore product route-handler placement by merging
handlers from productRouteHandlerPaths into the “Main product routes” entries in
scripts/generate-site-map.ts, while keeping them excluded from utility routes;
update tests/site-map.test.ts so the product-section assertion uses toContain
instead of requiring omission.

In `@supabase/migrations/20260717010000_harden_rag_scalability_patch.sql`:
- Around line 63-96: Scope the correction vocabulary RPC to the effective
retrieval tenant by adding owner and include-public parameters and applying
matching predicates to aliases, canonicals, and document-title words in
supabase/migrations/20260717010000_harden_rag_scalability_patch.sql:63-96 and
supabase/schema.sql:3520-3552. Pass the same retrieval scope through the callers
in src/lib/rag-candidate-sources.ts:263-266 and src/lib/rag.ts:2484-2490. Update
tests/supabase-schema.test.ts:1388-1406 to assert the scoped RPC parameters and
owner/public filters.

In `@tests/audit-navigation-auth-regressions.test.ts`:
- Line 129: Align the accessible dashboard H1 assertions on the intended heading
text, using “Clinical KB” consistently. Update
tests/audit-navigation-auth-regressions.test.ts:129-129,
tests/ui-accessibility.spec.ts:51-51, and tests/ui-smoke.spec.ts:870-870 and
1265-1265 so every source and browser assertion expects the same H1.

In `@tests/ui-tools.spec.ts`:
- Line 1623: Update mockAnswerDashboardApi in tests/ui-tools.spec.ts to return
matching service detail fixtures for non-form /services/... detail requests,
ensuring the direct service UI tests at the referenced usages receive a
successful response instead of 404 and can reach the asserted UI.

---

Outside diff comments:
In `@src/lib/rag.ts`:
- Around line 2445-2468: Thread args.signal through the RAG retrieval flow so
aborted requests stop Supabase work and do not populate caches. In
src/lib/rag.ts:2445-2468, pass args.signal to fetchEnabledRagAliases; in
src/lib/rag.ts:2533-2565 and 2800-2852, propagate it through the fast-path
enrichment and parallel candidate/RPC helpers; and in
src/lib/rag-candidate-sources.ts:185-207, add the corresponding signal handling
to the candidate-source helpers.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 3f7d26bd-7de7-438c-b104-a4c9b369a5d4

📥 Commits

Reviewing files that changed from the base of the PR and between bf3c855 and ef01cf4.

📒 Files selected for processing (27)
  • docs/branch-review-ledger.md
  • docs/codebase-index.md
  • docs/site-map.md
  • playwright.config.ts
  • scripts/check-github-action-pins.mjs
  • scripts/generate-site-map.ts
  • src/app/layout.tsx
  • src/app/page.tsx
  • src/components/clinical-dashboard/master-search-header.tsx
  • src/components/forms/forms-home-page.tsx
  • src/components/services/services-navigator-page.tsx
  • src/lib/rag-candidate-sources.ts
  • src/lib/rag.ts
  • supabase/drift-manifest.json
  • supabase/migrations/20260714180000_patch_rag_and_corrector_scalability.sql
  • supabase/migrations/20260714190000_document_table_facts_trgm_idx.sql
  • supabase/migrations/20260717010000_harden_rag_scalability_patch.sql
  • supabase/schema.sql
  • tests/audit-content-services-regressions.test.ts
  • tests/audit-navigation-auth-regressions.test.ts
  • tests/rag-variant-early-exit.test.ts
  • tests/site-map.test.ts
  • tests/supabase-schema.test.ts
  • tests/ui-accessibility.spec.ts
  • tests/ui-smoke.spec.ts
  • tests/ui-tools.spec.ts
  • tsconfig.json

Comment on lines +397 to +407
const publicUtilityRouteHandlers = data.publicRouteHandlers.filter(
(route) => !productRouteHandlerPaths.has(route.route),
);

const lines = [
"# Clinical KB Site Map",
"",
"This file is generated by `npm run sitemap:update`. Run `npm run sitemap:check` to verify it is current.",
"",
...section(
"Main product pages",
"Main product routes",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Restore product route-handler placement.

The generator excludes product handlers from both the product and utility sections, while the regression test incorrectly requires that omission.

  • scripts/generate-site-map.ts#L397-L407: merge handlers in productRouteHandlerPaths into the “Main product routes” entries.
  • tests/site-map.test.ts#L64-L96: change the product-section assertion to toContain.
📍 Affects 2 files
  • scripts/generate-site-map.ts#L397-L407 (this comment)
  • tests/site-map.test.ts#L64-L96
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@scripts/generate-site-map.ts` around lines 397 - 407, Restore product
route-handler placement by merging handlers from productRouteHandlerPaths into
the “Main product routes” entries in scripts/generate-site-map.ts, while keeping
them excluded from utility routes; update tests/site-map.test.ts so the
product-section assertion uses toContain instead of requiring omission.

Comment on lines +63 to +96
select candidate.term, similarity(candidate.term, tok)
into best, best_sim
from (
(
select lower(alias) as term
from public.rag_aliases
where enabled
and length(alias) between 4 and 40
and lower(alias) % tok
order by similarity(lower(alias), tok) desc, lower(alias)
limit 32
)
union all
(
select lower(canonical) as term
from public.rag_aliases
where enabled
and length(canonical) between 4 and 40
and lower(canonical) % tok
order by similarity(lower(canonical), tok) desc, lower(canonical)
limit 32
)
union all
(
select word as term
from public.document_title_words
where length(word) between 4 and 40
and word % tok
order by similarity(word, tok) desc, word
limit 32
)
) candidate
order by similarity(candidate.term, tok) desc, candidate.term
limit 1;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔒 Security & Privacy | 🟠 Major | 🏗️ Heavy lift

Scope query-correction vocabulary to the current retrieval tenant.

The security-definer RPC searches every tenant’s aliases and document-title words, while callers provide no owner/public scope. Private vocabulary can therefore steer another tenant’s correction or act as a corpus-membership oracle.

  • supabase/migrations/20260717010000_harden_rag_scalability_patch.sql#L63-L96: add owner/include-public parameters and filter all three candidate sources.
  • supabase/schema.sql#L3520-L3552: mirror the scoped final function definition.
  • src/lib/rag-candidate-sources.ts#L263-L266: pass the effective retrieval scope.
  • src/lib/rag.ts#L2484-L2490: pass the same scope used by downstream retrieval.
  • tests/supabase-schema.test.ts#L1388-L1406: assert owner/public predicates and scoped RPC parameters.
📍 Affects 5 files
  • supabase/migrations/20260717010000_harden_rag_scalability_patch.sql#L63-L96 (this comment)
  • supabase/schema.sql#L3520-L3552
  • src/lib/rag-candidate-sources.ts#L263-L266
  • src/lib/rag.ts#L2484-L2490
  • tests/supabase-schema.test.ts#L1388-L1406
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@supabase/migrations/20260717010000_harden_rag_scalability_patch.sql` around
lines 63 - 96, Scope the correction vocabulary RPC to the effective retrieval
tenant by adding owner and include-public parameters and applying matching
predicates to aliases, canonicals, and document-title words in
supabase/migrations/20260717010000_harden_rag_scalability_patch.sql:63-96 and
supabase/schema.sql:3520-3552. Pass the same retrieval scope through the callers
in src/lib/rag-candidate-sources.ts:263-266 and src/lib/rag.ts:2484-2490. Update
tests/supabase-schema.test.ts:1388-1406 to assert the scoped RPC parameters and
owner/public filters.

it("keeps the root dashboard H1 as Clinical KB", () => {
expect(clinicalDashboardSource.match(/<h1\b/g)).toHaveLength(1);
expect(clinicalDashboardSource).toMatch(/<h1 className="sr-only">\s*Clinical (?:Guide|KB)\s*<\/h1>/);
expect(clinicalDashboardSource).toMatch(/<h1 className="sr-only">\s*Clinical Guide\s*<\/h1>/);

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Align the dashboard H1 contract across test suites.

The source regression requires Clinical Guide, while both browser suites now require Clinical KB. Choose the intended accessible heading and use it consistently.

  • tests/audit-navigation-auth-regressions.test.ts#L129-L129: align the source assertion with the intended dashboard H1.
  • tests/ui-accessibility.spec.ts#L51-L51: use the same accessible heading.
  • tests/ui-smoke.spec.ts#L870-L870: use the same accessible heading.
  • tests/ui-smoke.spec.ts#L1265-L1265: use the same accessible heading.
📍 Affects 3 files
  • tests/audit-navigation-auth-regressions.test.ts#L129-L129 (this comment)
  • tests/ui-accessibility.spec.ts#L51-L51
  • tests/ui-smoke.spec.ts#L870-L870
  • tests/ui-smoke.spec.ts#L1265-L1265
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@tests/audit-navigation-auth-regressions.test.ts` at line 129, Align the
accessible dashboard H1 assertions on the intended heading text, using “Clinical
KB” consistently. Update
tests/audit-navigation-auth-regressions.test.ts:129-129,
tests/ui-accessibility.spec.ts:51-51, and tests/ui-smoke.spec.ts:870-870 and
1265-1265 so every source and browser assertion expects the same H1.

Comment thread tests/ui-tools.spec.ts
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants